
package carmadness.model;

/**
 * A vizsgált útelemről tekintve bejövő típusú útelemeket csomagoló osztály.
 * 
 * @author Ujhelyi
 * @version 1.0
 * @created 10-Apr-2010 2:32:41 PM
 */
public class IncomingRoadSegmentWrapper extends RoadSegmentWrapper
{

	public IncomingRoadSegmentWrapper( RoadSegment segment, float angle )
	{
		super( segment, angle );
	}

	/**
	 * Visszatér a belépési súllyal, ami mindig "végtelen", mivel bejövő utakra
	 * nem lehet hajtani.
	 * 
	 * @return Belépési súly.
	 */
	public float getEntryWeight()
	{
		return Float.MAX_VALUE;
	}

	/**
	 * Visszatér a csomagolt útelemen lévő jármű közlekedési súlyával.
	 * 
	 * @return Közlekedési súly.
	 */
	public float getTrafficWeight()
	{
		VehicleWrapper vwrapper = segment.getVehicle();
		if ( vwrapper != null )
		{
			RoadSegmentWrapper rsw = vwrapper.getDestinationRSW();
			if ( rsw != null )
			{
				float angle = (float)( rsw.getAngle() - Math.PI < 0f ? Math.PI + rsw.getAngle() : rsw.getAngle() - Math.PI );
				if ( Math.abs( angle - this.angle ) < 0.01 ) return vwrapper.getVehicle().getWeight();
			}
		}

		return 0;
	}
}
